#include "biblioteca.h"

void consumo(int *qntdClienteResi, int *qntdClienteComer) {

	system("clear");
	int escolha = 0, i, classe = 0;
	tipo_cliente clienteResi, clienteComer;
	Tarifas tarifa;
	NumDiscados numDiscados;
	float tempo_do_minuto_local;
	float tempo_do_minuto_interurbana;
	float tempo_do_minuto_local_Movel;
	float tempo_do_minuto_interurbana_Movel;
	float tempo_acesso_caixa_postal;
	float tempo_acesso_despertador;

	char num_local[50];
	char num_local_Movel[50];
	char num_interurbana[50];
	char num_interurbana_Movel[50];

	char nome[100];
	char telefone[100];
	printf("Escolha a sua busca: \n 1 - nome: \n 2 - telefone: \n 3 - Voltar\n");
	scanf("%d", &escolha);
	switch (escolha) {
	case 1:
		system("clear");
		printf("Digite o nome:");
		getchar();
		gets(nome);
		for (i = 0; i != ((*qntdClienteResi) + (*qntdClienteComer)); i++) { //faz um loop até a qtda de clientes.
			frClienteResi(&clienteResi, &i, qntdClienteResi);
			frClienteComer(&clienteComer, &i, qntdClienteComer);
			if (strcmp(clienteResi.nome, nome) == 10) { // ele retorna 10 quando é igual, logo.
				classe = 1;
			}
			if (strcmp(clienteComer.nome, nome) == 10) {
				classe = 2;
			}
			if (classe == 1) {
				frTarifas(&tarifa);
				clienteResi.tarifa.tarifa_comercial = 0; //tem que ter para oculpar o espaço que será necessário.
				clienteResi.tarifa.tarifa_residencial = tarifa.tarifa_residencial;

				strcpy(numDiscados.telefone, clienteResi.telefone); //aqui é o telefone que vai ser colocado dentro do arquivo relatório.
				strcpy(numDiscados.classe, clienteResi.classe);

				system("clear");
				printf("Digite o numero a ser ligado para chamada local:\n");
				fgets(num_local, 50, stdin);
				strcpy(numDiscados.local, num_local);
				system("clear");
				printf("Digite a quantidade de minutos locais:\n");
				fflush(stdin);
				scanf("%f", &tempo_do_minuto_local);
				numDiscados.tempo_local = tempo_do_minuto_local;
				clienteResi.tarifa.valor_do_minuto_local += (tempo_do_minuto_local * tarifa.valor_do_minuto_local);
				if (clienteResi.tarifa.valor_do_minuto_local > 71.1) { //apos 90 min que é o mesmo de R$ 71.1 ele vai começar a contar.
					if (tempo_do_minuto_local > 90) {
						clienteResi.tarifa.valor_do_minuto_local_Super = ((clienteResi.tarifa.valor_do_minuto_local) - 71.1);
					} else {
						clienteResi.tarifa.valor_do_minuto_local_Super += (tempo_do_minuto_local * tarifa.valor_do_minuto_local);
					}
				} else {
					clienteResi.tarifa.valor_do_minuto_local_Super = 0;
				}

				system("clear");
				printf("Digite o numero a ser ligado para chamada local para movel:\n");
				getchar();
				fgets(num_local_Movel, 50, stdin);
				strcpy(numDiscados.local_Movel, num_local_Movel);
				system("clear");
				printf("Digite a quantidade de minutos locais para movel:\n");
				scanf("%f", &tempo_do_minuto_local_Movel);
				if ((clienteResi.tarifa.valor_do_minuto_local_Movel > 10000) || (clienteResi.tarifa.valor_do_minuto_local_Movel < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_do_minuto_local_Movel = 0;
				}
				numDiscados.tempo_local_Movel = tempo_do_minuto_local_Movel;
				clienteResi.tarifa.valor_do_minuto_local_Movel += (tempo_do_minuto_local_Movel * tarifa.valor_do_minuto_local_Movel);

				system("clear");
				printf("Digite o numero a ser ligado para interurbano:\n");
				getchar();
				fgets(num_interurbana, 50, stdin);
				strcpy(numDiscados.interurbana, num_interurbana);
				system("clear");
				printf("Digite a quantidade de minutos interurbano:\n");
				scanf("%f", &tempo_do_minuto_interurbana);
				if ((clienteResi.tarifa.valor_do_minuto_interurbana > 10000) || (clienteResi.tarifa.valor_do_minuto_interurbana < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_do_minuto_interurbana = 0;
				}
				numDiscados.tempo_interurbana = tempo_do_minuto_interurbana;
				clienteResi.tarifa.valor_do_minuto_interurbana += (tempo_do_minuto_interurbana * tarifa.valor_do_minuto_interurbana);

				system("clear");
				printf("Digite o numero a ser ligado para interurbano Movel:\n");
				getchar();
				fgets(num_interurbana_Movel, 50, stdin);
				strcpy(numDiscados.interurbana_Movel, num_interurbana_Movel);
				system("clear");
				printf("Digite a quantidade de minutos interurbano movel:\n");
				scanf("%f", &tempo_do_minuto_interurbana_Movel);
				if ((clienteResi.tarifa.valor_do_minuto_interurbana_Movel > 10000) || (clienteResi.tarifa.valor_do_minuto_interurbana_Movel < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_do_minuto_interurbana_Movel = 0;
				}
				numDiscados.tempo_interurbana_Movel = tempo_do_minuto_interurbana_Movel;
				clienteResi.tarifa.valor_do_minuto_interurbana_Movel
						+= (tempo_do_minuto_interurbana_Movel * tarifa.valor_do_minuto_interurbana_Movel);

				system("clear");
				printf("Quantidade do serviço de despertador?:\n");
				fflush(stdin);
				scanf("%f", &tempo_acesso_despertador);
				if ((clienteResi.tarifa.valor_acesso_despertador > 10000) || (clienteResi.tarifa.valor_acesso_despertador > 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_acesso_despertador = 0;
				}
				numDiscados.qntd_despertador = tempo_acesso_despertador;
				clienteResi.tarifa.valor_acesso_despertador += (tempo_acesso_despertador * tarifa.valor_acesso_despertador);

				system("clear");
				printf("Digite a quantidade de minutos na caixa postal:\n");
				fflush(stdin);
				scanf("%f", &tempo_acesso_caixa_postal);
				if ((clienteResi.tarifa.valor_acesso_caixa_postal > 10000) || (clienteResi.tarifa.valor_acesso_caixa_postal < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_acesso_caixa_postal = 0;
				}
				numDiscados.qntd_caixa_postal = tempo_acesso_caixa_postal;
				clienteResi.tarifa.valor_acesso_caixa_postal += (tempo_acesso_caixa_postal * tarifa.valor_acesso_caixa_postal);

				i++; //é necessario para escrever no local certo.
				fwConsumoResi(&clienteResi, &i);
				fwRelatorioResi(&numDiscados);
				printf("Consulmo cadastrado com Sucesso!\n");
				getchar();
				getchar();
				break;
			}
			if (classe == 2) {
				frTarifas(&tarifa);
				clienteComer.tarifa.tarifa_comercial = tarifa.tarifa_comercial; //tem que ter para oculpar o espaço que será necessário.
				clienteComer.tarifa.tarifa_residencial = 0; //tem que ter para oculpar o espaço que será necessário.

				strcpy(numDiscados.telefone, clienteResi.telefone); //aqui é o telefone que vai ser colocado dentro do arquivo relatório.
				strcpy(numDiscados.classe, clienteResi.classe);

				system("clear");
				printf("Digite o numero a ser ligado para chamada local:\n");
				fgets(num_local, 50, stdin);
				strcpy(numDiscados.local, num_local);
				system("clear");
				printf("Digite a quantidade de minutos locais:\n");
				fflush(stdin);
				scanf("%f", &tempo_do_minuto_local);
				clienteComer.tarifa.valor_do_minuto_local += (tempo_do_minuto_local * tarifa.valor_do_minuto_local);
				if (clienteComer.tarifa.valor_do_minuto_local > 71.1) { //apos 90 min que é o mesmo de R$ 71.1 ele vai começar a contar.
					if (tempo_do_minuto_local > 90) {
						clienteComer.tarifa.valor_do_minuto_local_Super = ((clienteComer.tarifa.valor_do_minuto_local) - 71.1);
					} else {
						clienteComer.tarifa.valor_do_minuto_local_Super += (tempo_do_minuto_local * tarifa.valor_do_minuto_local);
					}
				} else {
					clienteComer.tarifa.valor_do_minuto_local_Super = 0;
				}

				system("clear");
				printf("Digite o numero a ser ligado para chamada local para movel:\n");
				getchar();
				fgets(num_local_Movel, 50, stdin);
				strcpy(numDiscados.local_Movel, num_local_Movel);
				system("clear");
				printf("Digite a quantidade de minutos locais para movel:\n");
				scanf("%f", &tempo_do_minuto_local_Movel);
				if ((clienteComer.tarifa.valor_do_minuto_local_Movel > 10000) || (clienteComer.tarifa.valor_do_minuto_local_Movel < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_do_minuto_local_Movel = 0;
				}
				clienteComer.tarifa.valor_do_minuto_local_Movel += (tempo_do_minuto_local_Movel * tarifa.valor_do_minuto_local_Movel);

				system("clear");
				printf("Digite o numero a ser ligado para interurbano:\n");
				getchar();
				fgets(num_interurbana, 50, stdin);
				strcpy(numDiscados.interurbana, num_interurbana);
				system("clear");
				printf("Digite a quantidade de minutos interurbano:\n");
				scanf("%f", &tempo_do_minuto_interurbana);
				if ((clienteComer.tarifa.valor_do_minuto_interurbana > 10000) || (clienteComer.tarifa.valor_do_minuto_interurbana < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_do_minuto_interurbana = 0;
				}
				clienteComer.tarifa.valor_do_minuto_interurbana += (tempo_do_minuto_interurbana * tarifa.valor_do_minuto_interurbana);

				system("clear");
				printf("Digite o numero a ser ligado para interurbano Movel:\n");
				getchar();
				fgets(num_interurbana_Movel, 50, stdin);
				strcpy(numDiscados.interurbana_Movel, num_interurbana_Movel);
				system("clear");
				printf("Digite a quantidade de minutos interurbano movel:\n");
				scanf("%f", &tempo_do_minuto_interurbana_Movel);
				if ((clienteComer.tarifa.valor_do_minuto_interurbana_Movel > 10000) || (clienteComer.tarifa.valor_do_minuto_interurbana_Movel < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_do_minuto_interurbana_Movel = 0;
				}
				clienteComer.tarifa.valor_do_minuto_interurbana_Movel += (tempo_do_minuto_interurbana_Movel
						* tarifa.valor_do_minuto_interurbana_Movel);

				system("clear");
				printf("Quantidade do serviço de despertador?:\n");
				scanf("%f", &tempo_acesso_despertador);
				if ((clienteComer.tarifa.valor_acesso_despertador > 10000) || (clienteComer.tarifa.valor_acesso_despertador < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_acesso_despertador = 0;
				}
				clienteComer.tarifa.valor_acesso_despertador += (tempo_acesso_despertador * tarifa.valor_acesso_despertador);

				system("clear");
				printf("Digite a quantidade de minutos na caixa postal:\n");
				scanf("%f", &tempo_acesso_caixa_postal);
				if ((clienteComer.tarifa.valor_acesso_caixa_postal > 10000) || (clienteComer.tarifa.valor_acesso_caixa_postal < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_acesso_caixa_postal = 0;
				}
				clienteComer.tarifa.valor_acesso_caixa_postal += (tempo_acesso_caixa_postal * tarifa.valor_acesso_caixa_postal);

				i++; //é necessario para escrever no local certo.
				fwConsumoComer(&clienteComer, &i);
				fwRelatorioComer(&numDiscados);
				printf("Consulmo cadastrado com Sucesso!\n");
				getchar();
				getchar();
				break;
			}
		}
		break;
	case 2:
		system("clear");
		printf("Digite o Telefone:");
		getchar();
		gets(telefone);
		for (i = 0; i != ((*qntdClienteResi) + (*qntdClienteComer)); i++) { //faz um loop até a qtda de clientes.
			frClienteResi(&clienteResi, &i, qntdClienteResi);
			frClienteComer(&clienteComer, &i, qntdClienteComer);
			if (strcmp(clienteResi.telefone, telefone) == 10) { // ele retorna 10 quando é igual, logo.
				classe = 1;
			}
			if (strcmp(clienteComer.telefone, telefone) == 10) {
				classe = 2;
			}
			if (classe == 1) {
				frTarifas(&tarifa);
				clienteResi.tarifa.tarifa_comercial = 0; //tem que ter para oculpar o espaço que será necessário.
				clienteResi.tarifa.tarifa_residencial = tarifa.tarifa_residencial;

				strcpy(numDiscados.telefone, clienteResi.telefone); //aqui é o telefone que vai ser colocado dentro do arquivo relatório.
				strcpy(numDiscados.classe, clienteResi.classe);

				system("clear");
				printf("Digite o numero a ser ligado para chamada local:\n");
				fgets(num_local, 50, stdin);
				strcpy(numDiscados.local, num_local);
				system("clear");
				printf("Digite a quantidade de minutos locais:\n");
				fflush(stdin);
				scanf("%f", &tempo_do_minuto_local);
				numDiscados.tempo_local = tempo_do_minuto_local;
				clienteResi.tarifa.valor_do_minuto_local += (tempo_do_minuto_local * tarifa.valor_do_minuto_local);
				if (clienteResi.tarifa.valor_do_minuto_local > 71.1) { //apos 90 min que é o mesmo de R$ 71.1 ele vai começar a contar.
					if (tempo_do_minuto_local > 90) {
						clienteResi.tarifa.valor_do_minuto_local_Super = ((clienteResi.tarifa.valor_do_minuto_local) - 71.1);
					} else {
						clienteResi.tarifa.valor_do_minuto_local_Super += (tempo_do_minuto_local * tarifa.valor_do_minuto_local);
					}
				} else {
					clienteResi.tarifa.valor_do_minuto_local_Super = 0;
				}

				system("clear");
				printf("Digite o numero a ser ligado para chamada local para movel:\n");
				getchar();
				fgets(num_local_Movel, 50, stdin);
				strcpy(numDiscados.local_Movel, num_local_Movel);
				system("clear");
				printf("Digite a quantidade de minutos locais para movel:\n");
				scanf("%f", &tempo_do_minuto_local_Movel);
				if ((clienteResi.tarifa.valor_do_minuto_local_Movel > 10000) || (clienteResi.tarifa.valor_do_minuto_local_Movel < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_do_minuto_local_Movel = 0;
				}
				numDiscados.tempo_local_Movel = tempo_do_minuto_local_Movel;
				clienteResi.tarifa.valor_do_minuto_local_Movel += (tempo_do_minuto_local_Movel * tarifa.valor_do_minuto_local_Movel);

				system("clear");
				printf("Digite o numero a ser ligado para interurbano:\n");
				getchar();
				fgets(num_interurbana, 50, stdin);
				strcpy(numDiscados.interurbana, num_interurbana);
				system("clear");
				printf("Digite a quantidade de minutos interurbano:\n");
				scanf("%f", &tempo_do_minuto_interurbana);
				if ((clienteResi.tarifa.valor_do_minuto_interurbana > 10000) || (clienteResi.tarifa.valor_do_minuto_interurbana < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_do_minuto_interurbana = 0;
				}
				numDiscados.tempo_interurbana = tempo_do_minuto_interurbana;
				clienteResi.tarifa.valor_do_minuto_interurbana += (tempo_do_minuto_interurbana * tarifa.valor_do_minuto_interurbana);

				system("clear");
				printf("Digite o numero a ser ligado para interurbano Movel:\n");
				getchar();
				fgets(num_interurbana_Movel, 50, stdin);
				strcpy(numDiscados.interurbana_Movel, num_interurbana_Movel);
				system("clear");
				printf("Digite a quantidade de minutos interurbano movel:\n");
				scanf("%f", &tempo_do_minuto_interurbana_Movel);
				if ((clienteResi.tarifa.valor_do_minuto_interurbana_Movel > 10000) || (clienteResi.tarifa.valor_do_minuto_interurbana_Movel < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_do_minuto_interurbana_Movel = 0;
				}
				numDiscados.tempo_interurbana_Movel = tempo_do_minuto_interurbana_Movel;
				clienteResi.tarifa.valor_do_minuto_interurbana_Movel
						+= (tempo_do_minuto_interurbana_Movel * tarifa.valor_do_minuto_interurbana_Movel);

				system("clear");
				printf("Quantidade do serviço de despertador?:\n");
				fflush(stdin);
				scanf("%f", &tempo_acesso_despertador);
				if ((clienteResi.tarifa.valor_acesso_despertador > 10000) || (clienteResi.tarifa.valor_acesso_despertador > 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_acesso_despertador = 0;
				}
				numDiscados.qntd_despertador = tempo_acesso_despertador;
				clienteResi.tarifa.valor_acesso_despertador += (tempo_acesso_despertador * tarifa.valor_acesso_despertador);

				system("clear");
				printf("Digite a quantidade de minutos na caixa postal:\n");
				fflush(stdin);
				scanf("%f", &tempo_acesso_caixa_postal);
				if ((clienteResi.tarifa.valor_acesso_caixa_postal > 10000) || (clienteResi.tarifa.valor_acesso_caixa_postal < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteResi.tarifa.valor_acesso_caixa_postal = 0;
				}
				numDiscados.qntd_caixa_postal = tempo_acesso_caixa_postal;
				clienteResi.tarifa.valor_acesso_caixa_postal += (tempo_acesso_caixa_postal * tarifa.valor_acesso_caixa_postal);

				i++; //é necessario para escrever no local certo.
				fwConsumoResi(&clienteResi, &i);
				fwRelatorioResi(&numDiscados);
				printf("Consulmo cadastrado com Sucesso!\n");
				getchar();
				getchar();
				break;
			}
			if (classe == 2) {
				frTarifas(&tarifa);
				clienteComer.tarifa.tarifa_comercial = tarifa.tarifa_comercial; //tem que ter para oculpar o espaço que será necessário.
				clienteComer.tarifa.tarifa_residencial = 0; //tem que ter para oculpar o espaço que será necessário.

				strcpy(numDiscados.telefone, clienteResi.telefone); //aqui é o telefone que vai ser colocado dentro do arquivo relatório.
				strcpy(numDiscados.classe, clienteResi.classe);

				system("clear");
				printf("Digite o numero a ser ligado para chamada local:\n");
				fgets(num_local, 50, stdin);
				strcpy(numDiscados.local, num_local);
				system("clear");
				printf("Digite a quantidade de minutos locais:\n");
				fflush(stdin);
				scanf("%f", &tempo_do_minuto_local);
				clienteComer.tarifa.valor_do_minuto_local += (tempo_do_minuto_local * tarifa.valor_do_minuto_local);
				if (clienteComer.tarifa.valor_do_minuto_local > 71.1) { //apos 90 min que é o mesmo de R$ 71.1 ele vai começar a contar.
					if (tempo_do_minuto_local > 90) {
						clienteComer.tarifa.valor_do_minuto_local_Super = ((clienteComer.tarifa.valor_do_minuto_local) - 71.1);
					} else {
						clienteComer.tarifa.valor_do_minuto_local_Super += (tempo_do_minuto_local * tarifa.valor_do_minuto_local);
					}
				} else {
					clienteComer.tarifa.valor_do_minuto_local_Super = 0;
				}

				system("clear");
				printf("Digite o numero a ser ligado para chamada local para movel:\n");
				getchar();
				fgets(num_local_Movel, 50, stdin);
				strcpy(numDiscados.local_Movel, num_local_Movel);
				system("clear");
				printf("Digite a quantidade de minutos locais para movel:\n");
				scanf("%f", &tempo_do_minuto_local_Movel);
				if ((clienteComer.tarifa.valor_do_minuto_local_Movel > 10000) || (clienteComer.tarifa.valor_do_minuto_local_Movel < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_do_minuto_local_Movel = 0;
				}
				clienteComer.tarifa.valor_do_minuto_local_Movel += (tempo_do_minuto_local_Movel * tarifa.valor_do_minuto_local_Movel);

				system("clear");
				printf("Digite o numero a ser ligado para interurbano:\n");
				getchar();
				fgets(num_interurbana, 50, stdin);
				strcpy(numDiscados.interurbana, num_interurbana);
				system("clear");
				printf("Digite a quantidade de minutos interurbano:\n");
				scanf("%f", &tempo_do_minuto_interurbana);
				if ((clienteComer.tarifa.valor_do_minuto_interurbana > 10000) || (clienteComer.tarifa.valor_do_minuto_interurbana < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_do_minuto_interurbana = 0;
				}
				clienteComer.tarifa.valor_do_minuto_interurbana += (tempo_do_minuto_interurbana * tarifa.valor_do_minuto_interurbana);

				system("clear");
				printf("Digite o numero a ser ligado para interurbano Movel:\n");
				getchar();
				fgets(num_interurbana_Movel, 50, stdin);
				strcpy(numDiscados.interurbana_Movel, num_interurbana_Movel);
				system("clear");
				printf("Digite a quantidade de minutos interurbano movel:\n");
				scanf("%f", &tempo_do_minuto_interurbana_Movel);
				if ((clienteComer.tarifa.valor_do_minuto_interurbana_Movel > 10000) || (clienteComer.tarifa.valor_do_minuto_interurbana_Movel < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_do_minuto_interurbana_Movel = 0;
				}
				clienteComer.tarifa.valor_do_minuto_interurbana_Movel += (tempo_do_minuto_interurbana_Movel
						* tarifa.valor_do_minuto_interurbana_Movel);

				system("clear");
				printf("Quantidade do serviço de despertador?:\n");
				scanf("%f", &tempo_acesso_despertador);
				if ((clienteComer.tarifa.valor_acesso_despertador > 10000) || (clienteComer.tarifa.valor_acesso_despertador < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_acesso_despertador = 0;
				}
				clienteComer.tarifa.valor_acesso_despertador += (tempo_acesso_despertador * tarifa.valor_acesso_despertador);

				system("clear");
				printf("Digite a quantidade de minutos na caixa postal:\n");
				scanf("%f", &tempo_acesso_caixa_postal);
				if ((clienteComer.tarifa.valor_acesso_caixa_postal > 10000) || (clienteComer.tarifa.valor_acesso_caixa_postal < 0)) { //unico método que encontrei para solucionar o erro, apenas nessa váriavel ficava com lixo.
					clienteComer.tarifa.valor_acesso_caixa_postal = 0;
				}
				clienteComer.tarifa.valor_acesso_caixa_postal += (tempo_acesso_caixa_postal * tarifa.valor_acesso_caixa_postal);

				i++; //é necessario para escrever no local certo.
				fwConsumoComer(&clienteComer, &i);
				fwRelatorioComer(&numDiscados);
				printf("Consulmo cadastrado com Sucesso!\n");
				getchar();
				getchar();
				break;
			}
		}
		break;
	case 3:
		system("clear");
		break;
	default:
		printf("Item do menu invalido\n");
		getchar();
		getchar();
		break;
	}
}

void fwConsumoResi(tipo_cliente *cliente, int *i) {
	FILE *Arquivo;
	Arquivo = fopen("cadastro_residencial", "r+b");
	if (!Arquivo)
		printf("Erro na abertura do arquivo.");
	else {
		fseek(Arquivo, (((sizeof(tipo_cliente)) * (*i)) - (sizeof(Tarifas))), SEEK_SET); //ele vai até o ultimo espaço e volta um tamanho de "Tarifa" que sera adicionado em partes
		fwrite(&cliente->tarifa.tarifa_residencial, 1, sizeof(int), Arquivo); //vo adicionando todos os campo tarifa por partes.
		fwrite(&cliente->tarifa.tarifa_comercial, 1, sizeof(int), Arquivo); //tem que por para ele pular esse espaço.
		fwrite(&cliente->tarifa.valor_do_minuto_local, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_do_minuto_local_Super, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_do_minuto_local_Movel, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_do_minuto_interurbana, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_do_minuto_interurbana_Movel, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_acesso_despertador, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_acesso_caixa_postal, 1, sizeof(float), Arquivo);
		fclose(Arquivo);
	}
}

void fwConsumoComer(tipo_cliente *cliente, int *i) {
	FILE *Arquivo;
	Arquivo = fopen("cadastro_comercial", "r+b");
	if (!Arquivo)
		printf("Erro na abertura do arquivo.");
	else {
		fseek(Arquivo, (((sizeof(tipo_cliente)) * (*i)) - (sizeof(Tarifas))), SEEK_SET); //ele vai até o ultimo espaço e volta um tamanho de "Tarifa" que sera adicionado em partes
		fwrite(&cliente->tarifa.tarifa_residencial, 1, sizeof(int), Arquivo); //vo adicionando todos os campo tarifa por partes.
		fwrite(&cliente->tarifa.tarifa_comercial, 1, sizeof(int), Arquivo); //tem que por para ele pular esse espaço.
		fwrite(&cliente->tarifa.valor_do_minuto_local, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_do_minuto_local_Super, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_do_minuto_local_Movel, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_do_minuto_interurbana, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_do_minuto_interurbana_Movel, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_acesso_despertador, 1, sizeof(float), Arquivo);
		fwrite(&cliente->tarifa.valor_acesso_caixa_postal, 1, sizeof(float), Arquivo);
		fclose(Arquivo);
	}
}

